const digit = 2 // 默认小数位数
const MAX_INTEGER = 10 // 最大整数位数


function stringToFixed(string) {
  // 使用字符串实现的toFixed
  if (typeof string !== 'string') {
    return ''
  }
  if (string.length === 0) {
    return ''
  }
  const arr = string.split('.')
  return arr[0] + '.' + arr[1].slice(0, digit)
}

function checkInput(string) {
  // 校验用户输入的字符串，只能输入整数或小数
  if (typeof string !== 'string') {
    return ''
  }
  if (string.length === 0) {
    return ''
  }
  // 使用正则表达式去除非数字字符
  string = string.replace(/[^\d.]/g, '')
  // 使用正则表达式去除多个小数点
  string = string.replace(/\.{2,}/g, '.')
  // 使用正则表达式去除前后的空格
  string = string.replace(/^\s*|\s*$/g, '')

  // 计算整数位数
  const arr = string.split('.')
  const integer = arr[0]
  const decimal = arr.length > 1 ? arr[1] : ''
  if (integer > MAX_INTEGER) {
    // 只取前 MAX_INTEGER 位
    return string.slice(0, MAX_INTEGER) + '.' + decimal
  }

  return stringToFixed(string)
}

function gTokg(m) {
  if (typeof m === 'string') {
    m = Number(m)
  }
  return (m / 1000).toFixed(digit)
}